import React from "react";

/**
 * 路由配置类型定义
 */
export interface RouteConfig {
  /** 路由路径 */
  path: string
  /** 路由对应的组件（可选，懒加载组件） */
  component?: React.LazyExoticComponent<React.ComponentType<any>>
  /** 路由名称 */
  name: string
  /** 路由图标 */
  icon?: React.ComponentType<any>
  /** 是否在菜单中显示 */
  showInMenu?: boolean
  /** 子路由 */
  children?: RouteConfig[]
  /** 是否需要认证 */
  requireAuth?: boolean
  /** 路由元信息 */
  meta?: {
    /** 是否可关闭 */
    closable?: boolean
    /** 是否为404页面 */
    is404?: boolean
    /** 重定向路径 */
    redirect?: string
    /** 其他自定义属性 */
    [key: string]: any
  }
}

import type { MenuProps } from 'antd'

/**
 * 菜单项类型
 */
export type MenuItemConfig = Required<MenuProps>['items'][number]